Linux 主機的設定

若要確保在失效接手實務中能回復路徑,將 Linux 主機連接至系統時,建議使用某些「裝置對映器多重路徑 (DMMP)」設定及 udev 規則。這些設定適用於 IBM® System x、所有 Intel 或 AMD 型伺服器,以及 Power® 平台。

完成下列兩個步驟之後,必須重新啟動主機:
  • 編輯 /etc/multipath.conf 中的多重路徑設定
  • 編輯 SCSI 指令逾時的 udev 規則

請針對每一個 Linux 發行套件以及發行套件內的版本,參閱 [/usr/share/doc/device-mapper-multipath.*] 之下的預設值(若為 Red Hat),以及 [/usr/share/doc/packages/multipath-tools] 之下的預設值(若為 Novell SuSE)。請確定新增至 multipath.conf 的項目符合必要 Linux 發行套件的格式和語法。所使用的 multipath.conf 必須來自您相關的發行套件和版本。請勿在不同的發行套件或版本之間複製 multipath.conf 檔。

對於某些作業系統層次,polling_interval 必需位於預設值之下,而不是位於裝置設定之下。如果在裝置區段中出現 polling_interval,請使用 # 索引鍵來註銷 polling_interval

例如:
Under Device Section
# 		polling_interval 30,

Under Defaults Section
defaults {
		user_friendly_names yes
		polling_interval  30
}

特定 Linux 發行套件和版本的多重路徑設定

使用下列參數來編輯 /etc/multipath.conf,並輸入下列來確認變更:
multipathd -k
multipathd> show config
Red Hat Linux 5.x 版、6.0 版和 6.1 版
     vendor "IBM"
     product "2145"
     path_grouping_policy "group_by_prio"
     path_selector "round-robin 0"
     prio_callout "/sbin/mpath_prio_alua /dev/%n" #Used by Red Hat 5.x
     prio "alua"
     path_checker "tur"
     failback "immediate"
     no_path_retry 5
     rr_weight uniform
     rr_min_io 1000
     dev_loss_tmo 120	
Red Hat Linux 6.2 版和更新版本
     vendor "IBM"
     product "2145"
     path_grouping_policy "group_by_prio"
     path_selector "round-robin 0" # Used by Red Hat 6.2
     prio "alua"
     path_checker "tur"
     failback "immediate"
     no_path_retry 5
     rr_weight uniform
     rr_min_io_rq "1"
     dev_loss_tmo 120	
Red Hat Linux 7.x 版
     vendor "IBM"
     product "2145"
     path_grouping_policy "group_by_prio"
     path_selector "service-time 0" # Used by Red Hat 7.x
     prio "alua"
     path_checker "tur"
     failback "immediate"
     no_path_retry 5
     rr_weight uniform
     rr_min_io_rq "1"
     dev_loss_tmo 120	
SUSE Linux 10.x 版、11.0 版和第 11 版 SP1
     vendor "IBM"
     product "2145"
     path_grouping_policy "group_by_prio"
     path_selector "round-robin 0"
     prio "alua"
     path_checker "tur"
     failback "immediate"
     no_path_retry 5
     rr_weight uniform
     rr_min_io 1000
     dev_loss_tmo 120	
SUSE Linux 第 11 版 SP2
     vendor "IBM"
     product "2145"
     path_grouping_policy "group_by_prio"
     path_selector "round-robin 0" # Used by SLES 11 SP2
     prio "alua"
     path_checker "tur"
     failback "immediate"
     no_path_retry 5
     rr_weight uniform
     rr_min_io_rq "1"
     dev_loss_tmo 120	
SUSE Linux 第 11 版 SP3+
     vendor "IBM"
     product "2145"
     path_grouping_policy "group_by_prio"
     path_selector "service-time 0" # Used by SLES 11 SP3+
     prio "alua"
     path_checker "tur"
     failback "immediate"
     no_path_retry 5
     rr_weight uniform
     rr_min_io_rq "1"
     dev_loss_tmo 120	
SUSE Linux 版本 12+
     vendor "IBM"
     product "2145"
     path_grouping_policy "group_by_prio"
     path_selector "service-time 0" 
     prio "alua"
     path_checker "tur"
     failback "immediate"
     retain_attached_hw_handler "yes"
     no_path_retry 5 # or no_path_retry "fail"
     fast_io_fail_tmo 5
     rr_min_io 1000
     rr_min_io_rq 1
     rr_weight "uniform"	
Ubuntu
     vendor "IBM"
     product "2145"
     path_grouping_policy "group_by_prio"
     path_selector "service-time 0" 
     prio "alua"
     path_checker "tur"
     failback "immediate"
     no_path_retry 5 # or no_path_retry "fail"
     retain_attached_hw_handler "yes"
     fast_io_fail_tmo 5
     rr_min_io 1000
     rr_min_io_rq 1
     rr_weight "uniform"	

Udev 規則 SCSI 指令逾時變更

設定 SCSI 指令逾時的 udev 規則。

將 SCSI 指令逾時設為 120 秒。這項建議設定適用於所有的 Linux 版本。

建立 udev 規則檔

如果要增加系統的 SCSI 指令逾時,請建立下列 udev 規則:
udev rules file
cat /etc/udev/rules.d/99-ibm-2145.rules

# Set SCSI command timeout to 120s (default == 30 or 60) for IBM 2145 devices
SUBSYSTEM=="block", ACTION=="add", ENV{ID_VENDOR}=="IBM",ENV{ID_MODEL}=="2145", RUN+="/bin/sh -c 'echo 120 >/sys/block/%k/device/timeout'"

設定磁區之後,請確認已為其設定了 120 秒。從指令行執行 multipath -ll | grep sd,以找出區塊裝置路徑。然後,執行 cat /sys/block/sdX/device/timeout(其中 X 是各個 2145 區塊裝置路徑)。